home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Tool Chest / Interapplication Communication / AE Tools / AE Stream Library 1.0 / AEStream.h < prev    next >
Encoding:
Text File  |  1992-02-19  |  1.9 KB  |  60 lines  |  [TEXT/MPS ]

  1. ////
  2. ////    AEStream.h                A (write-only) stream for creating AE Descriptors.
  3. ////                            This header file automatically uses AEStream_CPlus in C++.
  4. ////
  5. ////    By Jens Alfke            ©1991 Apple Computer, Inc. All rights reserved.
  6. ////
  7.  
  8.  
  9. #ifdef __cplusplus
  10.     #include "AEStream_CPlus.h"        /* C++ programs use C++ header instead */
  11. #else
  12.  
  13. // NOTE: In case of disagreement between this header and the C++ one (AEStream_CPlus.h),
  14. //         the C++ header is correct and this header needs to be fixed.
  15.  
  16.  
  17. #ifndef __AESTREAM__
  18.     #define __AESTREAM__
  19.  
  20. #define errAEStream_BadNesting    13579    /* Bad descriptor/array nesting error */
  21.  
  22.  
  23. typedef struct {                // Mark descriptor
  24.     Size    sizeIndex;
  25.     Size    countIndex;
  26. } AEStreamMark, *AEStreamMarkRef;
  27.  
  28. typedef struct {                // A (write-only) stream on an AE descriptor
  29.     Handle    data;                    // The data
  30.     Size    index;                    // Current index (into data handle) to write to
  31.     AEStreamMark mark;                // Current mark: Index to size/length field of open desc/array/record
  32.     Size    size;                    // Current size of handle
  33. } AEStream, *AEStreamRef;
  34.  
  35.  
  36. OSErr    AEStream_Open        ( AEStreamRef ),
  37.         AEStream_Close        ( AEStreamRef, AEDesc *desc ),
  38.  
  39.         AEStream_OpenDesc    ( AEStreamRef, DescType type, AEStreamMarkRef mark ),
  40.         AEStream_WriteData    ( AEStreamRef, void *data, Size length ),
  41.         AEStream_CloseDesc    ( AEStreamRef,                  AEStreamMarkRef mark ),
  42.  
  43.         AEStream_WriteDesc    ( AEStreamRef, DescType type, void *data, Size length ),
  44.         AEStream_WriteAEDesc( AEStreamRef, AEDesc *desc ),
  45.  
  46.         AEStream_OpenList    ( AEStreamRef, AEStreamMarkRef mark ),
  47.         AEStream_CloseList    ( AEStreamRef, AEStreamMarkRef mark ),
  48.  
  49.         AEStream_OpenRecord    ( AEStreamRef, DescType type, AEStreamMarkRef mark ),
  50.         AEStream_CloseRecord( AEStreamRef,                  AEStreamMarkRef mark ),
  51.  
  52.         AEStream_WriteKeyDesc(AEStreamRef, DescType key, DescType type, void *data, Size length ),
  53.         AEStream_OpenKeyDesc( AEStreamRef, DescType key, DescType type, AEStreamMarkRef mark ),
  54.         AEStream_WriteKey    ( AEStreamRef, DescType key );
  55.  
  56. #endif
  57.  
  58.  
  59. #endif
  60.